iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
自我挑戰組

從python入門到物聯網系列 第 22

Day22 - 物聯網雲端服務 AWS IoT

  • 分享至 

  • xImage
  •  

AWS IoT

AWS推出了Lambda的Serverless 沒有伺服器的架構,雲端的開發使用者不需要部署、管理伺服器,只要把程式碼上傳到AWS Lambda service,AWS會調派資源。
在AWS Lambda的執行程式就叫做Lambda Function,目前要開發Landa Function,在AWS支援了Java、Node.js、Python。

  • AWS IoT 管理物聯網的雲服務平台:
    • 安全的連接很多物聯設備
    • 根據自己定義的規則提取&過濾來自設備的數據
    • 創建web和移動應用在任何時間與設備進行溝通
    • Serverless無伺服器運算架構
    • Lambda無伺服器運算服務
      • 不須部署與管理
      • 程式碼傳至AWS Lambda
      • AWS調派EC2運算服務
      • 建立Lambda程式的執行環境
  • AWS IoT 功能:
    • 裝置 <-> AWS 雲端 ( <-> 連線)
      • 支援 HTTP、MQTT、WebSocket
    • 雲端中的應用程式 <-> 裝置
      • 進一步處理分析資料,根據資料分析結果指示
    • IoT 應用程式 <-> AWS 雲端
      • IoT 應用程式會收集並處理裝置的資料:
      • AWS IoT 服務可加速物聯網應用程式開發
      • 提供雲端和行動裝置上簡單易用的界面
      • 存取連網裝置傳送的資料及將資料和命令傳回裝置

message broker : 雲端裝置協商資訊的傳輸
rules engine : 根據觀測到的自訂動作狀態分析訊息
device shadow : 為每個裝置建立永久的虛擬版本

  • AWS IoT重要元件:
    • Gateway 閘道
    • Shadow Device 影子裝置
    • Rule Engin 規則引擎
  • Edge -> Greengrass 邊緣服務

AWS IoT Device Gateway

  • 安全並有效與 AWS IoT 通訊
  • 裝置跟雲端之間的溝通
    • 通訊協定HTTP、MQTT、WebSocket
  • 使用Publish / Subscribe 來交換訊息
    • 進行一對一 或 一對多通訊
    • MQTT基本的架構
  • 透過閘道來做路由分配
  • 可以自動擴展支援超過十億個裝置,無須佈建基礎設施

AWS IoT Device Shadow

  • 為每個裝置建立永久的虛擬版本
    • 包含裝置最新的狀態
      • 上次報告的狀態
      • 上次接收到裝置的狀態
      • 未來所需要的狀態
    • 透過 API 或使用規則引擎來擷取裝置的保留
  • 提供 REST API 方便建置可與裝置互動的應用程式
  • AWS IoT 裝置開發套件可讓裝置將狀態與Device Shadow進行同步

為什麼要存在Device Shadow

裝置有可能因為網路狀況不好或者網路斷掉而突然離線,或者因為某些狀況裝置不要一直保持網路連線,這時如果有其他服務它需要知道這個裝置的訊息,就可以從雲端的Device Shadow取得該裝置的資訊。

AWS IoT Rule Engine

  • Rule Engine 能夠建置物聯網應用程式
    • 無須管理任何基礎設施
  • Rule Engine 也可以將訊息路由到 AWS 終端節點
  • Rule Engine 提供許多轉換資料的功能
  • Rule 可以觸發執行 AWS Lambda
    • 支援程式碼: Java、Node.js 或 Python

AWS IoT Rule Engine 使用類似 SQL 的語法來挑選來自 MQTT 訊息的資料

  • 建立rule 查詢數據

    select * from 'Topic' where value > 0 
    監聽某個topic當送進來的某筆資料
    value > 0 把這筆資料所有抓出來
    

    • 例如:收集溫度,當溫度高於平均,就會觸發規則轉發訊息
      • 利用sql查訊數據 並且判斷
      • 觸發rule條件 就執行action 轉發
      • 將資料傳輸給 AWS Lambda
      • 也可以限制速度->規則的時間速度

例子

  • 左邊IoT判斷後送到Lambda然後會做事情

  • Rule這樣寫:當收到 dimming > 50時 要求執行這個lambda

  • Lambda 執行

參考資料

https://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/iot-create-rule.html

https://docs.aws.amazon.com/zh_tw/iot/latest/developerguide/aws-iot-how-it-works.html

https://www.slideshare.net/AmazonWebServices/aws-iot-76750245


上一篇
Day21 - 雲端服務
下一篇
Day23 - 物聯網雲端服務 Microsoft Azure IoT Edge
系列文
從python入門到物聯網30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言